package com.lz.ionicbase.utils;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * SharedPreferences的工具类 2016-9-27 下午3:18:21
 * 注意：如果在 Fragment 中使用SharedPreferences 时，
 * 需要放在onAttach(Activity activity)里面进行SharedPreferences 的初始化，
 * 否则会报空指针 即 getActivity()会可能返回null ！
 */
public class SpUtils {

    /*** 当前使用语言*/
    public static final String KEY_LANGUAGE = "language";
    /*** APP上次是否崩溃过*/
    public static final String KEY_APP_CRASHED = "app_crashed_last";
    /** baseUrl = "http://"+serverip+":"+port*/
    public static final String KEY_BASE_URL = "baseUrl";

    public static final String KEY_RECEIVE_NOTICE = "receiveNotice";

    private static SharedPreferences sp;

    /**
     * 保存boolean信息的操作 2016-9-27 下午3:18:45
     */
    public static void saveBoolean(Context context, String key, boolean value) {
        // name : 保存信息的文件的名称
        if (sp == null) {
            sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        }
        // 保存数据
        // key : 保存信息的名称
        // value : 保存的信息
        sp.edit().putBoolean(key, value).commit();
    }

    /**
     * 获取boolean信息的操作 2016-9-27 下午3:22:06
     */
    public static boolean getBoolean(Context context, String key,
                                     boolean defValue) {
        if (sp == null) {
            sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        }
        // key : 保存信息的名称
        // defValue : 默认的值
        return sp.getBoolean(key, defValue);
    }

    /**
     * 保存String信息的操作 2016-9-27 下午3:18:45
     */
    public static void saveString(Context context, String key, String value) {
        // name : 保存信息的文件的名称
        if (sp == null) {
            sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        }
        // 保存数据
        // key : 保存信息的名称
        // value : 保存的信息
        sp.edit().putString(key, value).commit();
    }

    /**
     * 获取String信息的操作 2016-9-27 下午3:22:06
     */
    public static String getString(Context context, String key, String defValue) {
        if (sp == null) {
            sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        }
        // key : 保存信息的名称
        // defValue : 默认的值
        return sp.getString(key, defValue);
    }

    /**
     * 保存Int信息的操作 2016-9-27 下午3:18:45
     */
    public static void saveInt(Context context, String key, int value) {
        // name : 保存信息的文件的名称
        if (sp == null) {
            sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        }
        // 保存数据
        // key : 保存信息的名称
        // value : 保存的信息
        sp.edit().putInt(key, value).commit();
    }

    /**
     * 获取Int信息的操作 2016-9-27 下午3:22:06
     */
    public static int getInt(Context context, String key, int defValue) {
        if (sp == null) {
            sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        }
        // key : 保存信息的名称
        // defValue : 默认的值
        return sp.getInt(key, defValue);
    }

    /**
     * 移除一个数据
     *
     * @param context
     * @param key
     */
    public static void remove(Context context, String key) {
        if (sp == null) {
            sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        }
        sp.edit().remove(key).commit();
    }

    /**
     * 清除所有数据
     *
     * @param context
     */
    public static void clear(Context context) {
        if (sp == null) {
            sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        }
        sp.edit().clear().commit();
    }

}
